<?php

/**
 * CodeRS - Atviras kodas Lietuvai
 * Copyright (C) 2007 CodeRS www.coders.lt info@coders.lt
 * MightMedia TVS
 * reg.php - Vartotojo registracijos forma
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 * 
 * 
 * Ši programa yra laisva. Jūs galite ją platinti ir/arba modifikuoti
 * remdamiesi Free Software Foundation paskelbtomis GNU Bendrosios
 * Viešosios licencijos sąlygomis: 2 licencijos versija, arba (savo
 * nuožiūra) bet kuria vėlesne versija.
 * 
 * Ši programa platinama su viltimi, kad ji bus naudinga, bet BE JOKIOS
 * GARANTIJOS; be jokios numanomos PERKAMUMO ar TINKAMUMO KONKRETIEMS
 * TIKSLAMS garantijos. Žiūrėkite GNU Bendrąją Viešąją licenciją norėdami
 * sužinoti smulkmenas.
 * 
 * Jūs turėjote kartu su šia programa gauti ir GNU Bendrosios Viešosios
 * licencijos kopija; jei ne - rašykite Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**/

if ($_SERVER['PHP_SELF'] == __FILE__) { header('location: ?'); exit(); }

//Patikrinam, gal vartotojas jau prisijungęs
if (PRISIJUNGES) { header("Location: ?"); exit(); }

//Jei registracija yra įjungta
if ($conf['Registracija'] == 0) { klaida("Registracija uždaryta","<blink><font color=\"red\"><b>Atsiprašome, tačiau šiuo metu naujų dalyvių mes nepriimame. Užeikite vėliau arba susisiekite su administracija</b></font></blink>","Registracija"); }
$error = '';
if (isset($_POST['action']) && $_POST['action'] == 'registracija' && $conf['Registracija'] == 1 && !preg_match('/[^A-Za-z0-9]/', $_POST['nick'])) {
	$vardas = htmlentities($_POST['nick'], ENT_QUOTES);
	$kode = strip_tags($_POST['kode']);
	$pass =  $_POST['pass'];
	$pass2 = $_POST['pass2'];
	$email = strip_tags($_POST['email']);
	$einfo = $db->rows($db->uzklausa("SELECT * FROM users WHERE nick=".$db->fix($vardas).""));
	if (!preg_match("[^[a-zA-Z0-9_-]+$]", $vardas)) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Vartotojo vardas gali būti sudarytas tik iš lotyniškų raidžių ir skaičių<br />"; }
	if ($einfo != 0 ) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Toks vartotojas jau uzregistruotas<br />"; }
	if (strlen($vardas) < 4) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Vartotojas turi būti sudarytas iš ne mažiau kaip 5 simbolių<br />"; }
	if (strlen($vardas) > 15) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Vartotojo maksimalus simbolių skaičius negali viršyti 15 simbolių<br />"; }
	if ($pass != $pass2) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Nesutampa slaptažodžiai<br />"; }
	if (strlen($pass) < 6) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Slaptažodis turi būti sudarytas ne mažiau kaip iš 5 simbolių<br />"; }
	if (strlen($pass) > 15) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Slaptažodžio maksimalus simbolių skaičius yra 15<br />"; }
	if (!check_email($email)) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Įveskite teisingą El. Pašto adresą<br />"; }
	if (check_email($email)) {
		$minfo = $db->masyvas($db->uzklausa("SELECT * FROM users WHERE email=".$db->fix($email).""));
		if ($minfo != 0) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Toks El. Paštas jau yra užregistruotas<br />"; }
	}
	if ($db->rows($db->uzklausa("SELECT `sausainis` FROM `snif` WHERE ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."') AND `sausainis`=".$db->fix($kode)."")) < 1) { $error .= "<img src='images/icons/cross.png' alt='x' align='absmiddle' /> Neteisingai įvestas saugos kodas<br>"; }
	if (!$error) {
		if ($db->uzklausa("INSERT INTO `users` ( `id` , `nick` , `levelis` , `pass` , `email` , `reg_data` , `login_data` )
					VALUES (
					NULL , ".$db->fix($vardas).", '1', MD5(".$db->fix($pass).") , ".$db->fix($email).", NOW( ) , NOW( )
					)")) {
			msg("Vartotojas sukurtas","Jūsų vartotojas sukurtas. Dabar galite prisijungti prie mūsų sistemos.","Informacija");
		}
		else { klaida("Sistemos klaida","Atsiprašome, tačiau šiuo metu jus užregistruoti negalima"); }
	}
	if ($error) {
		$text = "
			<fieldset>
    		<legend>Prašome ištaisyti sekančias klaidas:</legend>
 			$error
 			</fieldset>
    		".registracijos_forma()."
    		<fieldset>
    	";
		lentele("Klaidinga informacija",$text);
	}
}
elseif ($conf['Registracija'] == 1) {
	lentele("Naujo vartotojo registracija",registracijos_forma());
}

function registracijos_forma() {
	global $vardas, $pass, $pass2, $email;
	$text = "
    	<form name=\"reg\" action=\"\" onSubmit=\"return checkMail('reg','email')\" method=\"post\">
    	<fieldset>
    	<legend>Įveskite savo duomenis:</legend>
    	<table border=0 width=100%>
    		<tr>
    			<td align=\"right\">Vartotojas:</td>
    			<td><input name=\"nick\" id=\"nick\" type=\"text\" value=\"".(isset($vardas)?input($vardas):"vardas   ")."\" onfocus=\"if (this.value=='vardas   ') this.value=''\" onblur=\"if (this.value=='') this.value='vardas   '; ajax.update('tikrink.php?nick='+this.value+'', 'result_nick') \" /> <span id=\"result_nick\"></span></td>
    		</tr>
    		<tr>
    			<td align=\"right\">Slaptažodis:</td>
    			<td><input name=\"pass\" type=\"password\" value=\"".input($pass)."\" /></td>
    		</tr>
    		<tr>
    			<td align=\"right\">Pakartokite:</td>
    			<td><input name=\"pass2\" type=\"password\" value=\"".input($pass2)."\" /></td>
    		</tr>
    		<tr>
    			<td align=\"right\">El. Paštas:</td>
    			<td><input name=\"email\" id=\"email\" type=\"text\" value=\"".(isset($email)?input($email):"el@pastas.lt   ")."\" onfocus=\"if (this.value=='el@pastas.lt   ') this.value=''\" onblur=\"if (this.value=='') this.value='el@pastas.lt   '; if (checkMail('reg','email')) ajax.update('tikrink.php?email='+this.value+'', 'result_email'); \" /> <span id=\"result_email\"></span></td>
    		</tr>
    		<tr>
    			<td align=\"right\"><img src=\"priedai/human.php\" alt=\"Patvirtinimo kodo paveiksliukas\" /></td>
    			<td><input name=\"kode\" id=\"kode\" style=\"height:40px; text-align:center; text-transform:uppercase; font-weight:bold; vertical-align:middle\" type=\"text\" onblur=\"ajax.update('tikrink.php?c='+this.value+'', 'result_kode'); \" /> <span id=\"result_kode\"></span></td>
    		</tr>
    		<tr>
    			<td></td>
    			<td><input type=\"submit\" value=\"Registruotis\" /></td>
    		</tr>
    	</table>
    	<input type=\"hidden\" name=\"action\" value=\"registracija\" />
     	</fieldset>
    	</form>
    ";
    return $text;
}

// Tikrinamas E-Mail Adresas
function check_email($email) {
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { return false; }
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; }
  }
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) { return false; }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { return false; }
    }
  }
  return true;
}

unset($text,$email,$vardas,$error,$einfo,$pass,$pass,$reg_info);
?>
<script language="JavaScript1.2">
function checkMail(form,email) {
	var x = document.forms[form].email.value;
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) { return true; }
	else { alert('Prašome patikrinti ar teisingai įvedėte e-pašto adresą'); return false; }
}
</script>
